# -*- coding: utf-8 -*-
"""
Created on Mon Aug 14 11:55:47 2023

@author: skunk69
"""

import json

chinese_name = u'安全感量表'
english_name = 'Security Questionnaire'
abbreviation = 'SQ'
category = u'家庭与人际关系量表'

outline = u"""安全感是对可能出现的对身体或心理的危险或风险的预感，以及个体在应对处置时的有力/无力感，主要表现为确定感和可控制感。为了能够对安全感这一重要心理特征进行检测，丛中和安莉娟于2003年编制了《安全感量表》（Security Questionnaire，SQ）。"""

instruction = u"""请仔细阅读下面的每一条陈述，判断与你的感受或行为相符合的程度，然后在“非常符合”、“基本符合”、“中性或不确定”、“基本不符合”和“非常不符合”中选择最适合的一项，来表示你经常性的感受或行为。答案无所谓对错，因此不必要对任何一条陈述花太多时间去考虑，只要答出你平时的实际感受是怎样的就可以了。"""

with open('SQ.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for line in lines[0::6]:
    key,value = line.strip().split('、')
    items[key] = value

reverse_items = []
scales = [u'人际安全感',u'确定控制感']
scales_items = [
    [1,3,6,8,10,12,15,16],
    [2,4,5,7,9,11,13,14]
    ]
factors = []
factors_scales = []
rating = [l.strip() for l in lines[1:6]]
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《安全感量表》属于一个自评量表。"""

reliability = u"""正式样本为随机抽取的大学生样本。人际安全感和确定控制感两个分量表的内部一致性系数分别是0.747，0.720，全量表为0.796；重测信度分别为0.683，0.669和0.742，P值均小于0.01。"""
validity = u"""结构效度方面，进行探索性因素分析，并通过正交旋转得到的二因子模型与原假设相吻合。根据安全感的概念及其理论框架，选用人际信任量表、社交回避和苦恼量表、自我接纳量表、个人评价量表以及马斯洛的安全-不安全量表（S-I）作为效标，以此来校验所编制的安全感量表。结果发现，安全感量表与人际信任量表、自我接纳量表、个人评价量表以及马斯洛的安全-不安全量表的相关系数为0.235~0.682，表明该量表具有较好的效标效度。另外，正常人和神经症患者的测量结果表明，安全感量表及其因子的得分有显著差异，表明该量表对于区分正常人与神经症患者具有较好的实证效度。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""《安全感量表》的统计指标主要是各维度得分和总分。"""

applications = u"""用于测试人群的样本量较小，未制定出该量表的常模。
安全感量表符合安全感的理论构想，且具有较好的信效度，可以用于检测正常人和神经症患者的安全感心理特征，在心理治疗和精神医学临床实践中具有较为广泛的应用前景。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)